package cn.vawn.base.mapper;

import cn.vawn.base.entity.SmsVCodeRecord;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface SmsVCodeRecordMapper {

    int insert(SmsVCodeRecord record);

    int insertSelective(SmsVCodeRecord record);

    /**
     * 根据手机号或者ip和时间范围获取请求验证码的记录(请求时间倒序)
     * @param smsVCodeRecord
     * @param startTime
     * @param endTime
     * @return
     */
    List<SmsVCodeRecord> getRecordByMobileOrIp(@Param("smsVCodeRecord") SmsVCodeRecord smsVCodeRecord,
                                               @Param("startTime") Date startTime,
                                               @Param("endTime") Date endTime);

    /**
     * 清理请求时间早于指定日期的记录
     * @param invalidTime
     */
    void cleanBeforeRecord(@Param("invalidTime") Date invalidTime);
}